package iedcyt.acute.businessServices.IServices;

import iedcyt.acute.businessServices.*;


/**
 * Factoria abstracta del negocio. Instancia las clases que se encargan de implementar los servicios del negocio
 * @author 53385255R
 *
 */
public class FactoryBusinessSrv {
/**
 * Instancia unica
 */
	private static FactoryBusinessSrv _instance;
	/**
	 * Constructor privado
	 */
	private FactoryBusinessSrv() {
	
	}
	
	/**
	 * @return instancia unica (singleton)
	 */
	public static FactoryBusinessSrv getInstance() {
		if (_instance == null) _instance = new FactoryBusinessSrv();
		
		return _instance;
	}

	/**
	 * @return servicios de negocio para autores
	 */
	public IAuthorService getAuthorService() {
		return new AuthorService();
	}
	/**
	 * @return servicios de negocio para firmas
	 */
	public ISignService getSignService() {
		return new SignService();
	}
	/**
	 * @return servicios de negocio para centros
	 */
	public ICenterService getCenterService() {
		return new CenterService();
	}
	/**
	 * @return servicios de negocio para grupos de colaboracion
	 */
	public ICollGroupService getCollGroupService() {
		return new CollGroupService();
	}
	/**
	 * @return servicios de negocio para direcciones
	 */
	public ICorpService getCorpService() {
		return new CorpService();
	}
	
	
	/**
	 * @return servicios de negocio para documentos
	 */
	public IDocumentService getDocumentService() {
		return new DocumentService();
	}
	
		
	/**
	 * @return servicios de conversion entre bases de datos
	 */
	public IConversionService getConversionService() {
		return new ConversionService();
	}
	
	/**
	 * @return servicios de negocio para clasificacion de firmas en direcciones
	 */
	public ISignClassificationService getSignClassificationService() {
		return new SignClassificationService();
	}
	
	/**
	 * @return servicios para guardado de errores
	 */
	public IErrorLogService getErrorLogService() {
		return new ErrorLogService();
	}
	/**
	 * @return servicios para gestion de hilos
	 */
	public IThreadsService getThreadsService() {
		return new ThreadsService();
	}
	/**
	 * @return servicios de negocio para scripts varios
	 */
	public IScriptsService getScriptsService() {
	
		return new ScriptsService();
	}
	
}
